package com.snap.vseries.analyze;

import io.protostuff.Tag;

public class AlgoParams {

    @Tag(1)
    private String mainAlgo = "default";
    @Tag(2)
    private String baselineMethod = "ab";//ab、ma
    @Tag(3)
    private String relativeMethod = "normal";
    @Tag(4)
    private String thresholdMethod = "sd10";
    @Tag(5)
    private String ctFindMethod = "linear";

    //基线算法参数
    @Tag(21)
    private int defBaselineStart = 2;
    @Tag(22)
    private double maxSlope = 0.015D;
    //相对算法参数
    @Tag(31)
    private boolean relativeBLOpt = true;
    @Tag(32)
    private double relativeBLOptThreshold = 0.01D;
    //阈值算法参数
    @Tag(41)
    private double defThreshold = 1.1D;
    @Tag(42)
    private double minThreshold = 1.01D;
    //ct算法参数 暂无

//    public Map<String, Object> getParamMap() {
//        Map<String, Object> map = new HashMap();
//        map.put("baselineMethod", this.baselineMethod);
//        map.put("relativeMethod", this.relativeMethod);
//        map.put("thresholdMethod", this.thresholdMethod);
//        map.put("ctFindMethod", this.ctFindMethod);
//
//        map.put("defBaselineStart", this.defBaselineStart);
//        map.put("maxSlope", this.maxSlope);
//
//        map.put("relativeBLOpt", relativeBLOpt);
//        map.put("relativeBLOptThreshold", relativeBLOptThreshold);
//
//        map.put("defThreshold", this.defThreshold);
//        map.put("minThreshold", this.minThreshold);
//
////        map.put("sumSquaredErrorThreshold", this.sumSquaredErrorThreshold);
////        map.put("defaultBaslineStart", this.defaultBaselineStart);
//
////        map.put("minPeakFirstDeriv", this.minPeakFirstDeriv);
////        map.put("minPeakThreshold", this.minPeakThreshold);
////        map.put("minSlope", this.minSlope);
//
////        map.put("minManualBaselineStart", this.minManualBaselineStart);
////        map.put("minManualBaselineStop", this.minManualBaselineStop);
////        map.put("minManualBaselineLength", this.minManualBaselineLength);
////        map.put("manualBaselineAverageLength", this.manualBaselineAverageLength);
//        return map;
//    }


    public String getMainAlgo() {
        return mainAlgo;
    }

    public void setMainAlgo(String mainAlgo) {
        this.mainAlgo = mainAlgo;
    }

    public String getBaselineMethod() {
        return baselineMethod;
    }

    public void setBaselineMethod(String baselineMethod) {
        this.baselineMethod = baselineMethod;
    }

    public String getRelativeMethod() {
        return relativeMethod;
    }

    public void setRelativeMethod(String relativeMethod) {
        this.relativeMethod = relativeMethod;
    }

    public String getThresholdMethod() {
        return thresholdMethod;
    }

    public void setThresholdMethod(String thresholdMethod) {
        this.thresholdMethod = thresholdMethod;
    }

    public String getCtFindMethod() {
        return ctFindMethod;
    }

    public void setCtFindMethod(String ctFindMethod) {
        this.ctFindMethod = ctFindMethod;
    }

    public double getMaxSlope() {
        return maxSlope;
    }

    public void setMaxSlope(double maxSlope) {
        this.maxSlope = maxSlope;
    }

    public double getDefThreshold() {
        return defThreshold;
    }

    public void setDefThreshold(double defThreshold) {
        this.defThreshold = defThreshold;
    }

    public double getMinThreshold() {
        return minThreshold;
    }

    public void setMinThreshold(double minThreshold) {
        this.minThreshold = minThreshold;
    }

    public int getDefBaselineStart() {
        return defBaselineStart;
    }

    public void setDefBaselineStart(int defBaselineStart) {
        this.defBaselineStart = defBaselineStart;
    }

    public boolean isRelativeBLOpt() {
        return relativeBLOpt;
    }

    public void setRelativeBLOpt(boolean relativeBLOpt) {
        this.relativeBLOpt = relativeBLOpt;
    }

    public double getRelativeBLOptThreshold() {
        return relativeBLOptThreshold;
    }

    public void setRelativeBLOptThreshold(double relativeBLOptThreshold) {
        this.relativeBLOptThreshold = relativeBLOptThreshold;
    }
}
